草庐IT

Angular2 HMR(热模块更换) - 卸下日志

全部标签

ruby - 将 "puts"命令输出重定向到日志文件

我正在使用daemonsgem在Ruby中创建一个守护进程。我想将守护进程的输出添加到日志文件中。我想知道将puts从控制台重定向到日志文件的最简单方法是什么。 最佳答案 如果您需要同时捕获STDERR和STDOUT并且不想求助于日志记录:$stdout.reopen("my.log","w")$stdout.sync=true$stderr.reopen($stdout)恢复:$stdout=STDOUT 关于ruby-将"puts"命令输出重定向到日志文件,我们在StackOverf

ruby - 检查模块是否存在于 ruby​​ 中

我根据cli上传递的参数动态定义模块名称,例如Required::Module::#{ARGV.first}有什么方法可以检查该模块是否存在?另外,我如何在不知道它的确切名称的情况下对其运行方法? 最佳答案 为此使用const_defined?。Required::Module.const_defined?(:ModuleName)返回真或假。 关于ruby-检查模块是否存在于ruby​​中,我们在StackOverflow上找到一个类似的问题: https:

ruby - 如何列出 Ruby 类中包含的模块?

在Ruby的类层次结构中,您如何列出已包含在特定类中的模块?像这样:moduleSomeModuleendclassParentModel[SomeModule]pChildModel.included_modules(false)#=>[]列出祖先使模块在树中显得更高:pChildModel.ancestors#=>[ChildModel,ParentModel,SomeModule,Object,Kernel] 最佳答案 据我了解你的问题,你正在寻找这样的东西:classClassdefmixin_ancestors(inclu

ruby - 为什么模块 `ClassMethods` 在同一个命名空间中定义和扩展?

我正在尝试理解来自githubrepo的代码.它是设置客户端的gem的主要模块。moduleGithub#morecodeclass为什么是class和moduleClassMethods使用,然后扩展而不是包含在class中部分?有一个类方法defincluded(base).这似乎将类方法添加到特定对象中。为什么会这样?它可能与类的功能有关,但我不明白。 最佳答案 moduleMyModuleclassendend这实际上是Ruby中很常见的做法。基本上,它的意思是:当某个对象执行includeMyModule时,也使它也ext

ruby - 为什么扩展模块中的常量在用 self. 声明的类方法中不可用?

我认为在class中声明的方法之间没有区别block和用self.声明的block前缀,但有:moduleAVAR='some_constant'endclassBextendAclassOKB.m2#=>uninitializedconstantB::VAR为什么A的常量是可用m1但不在m2? 最佳答案 在Ruby中,常量查找与方法查找不同。对于方法查找,调用foo始终与调用self.foo相同(假设它不是私有(private)的)。调用常量FOO与self::FOO非常不同或singleton_class::FOO.使用非限定常

ruby - 列出模块在 Ruby 中声明的所有类型

如何在Ruby中列出模块声明的所有类型? 最佳答案 使用Module模块中定义的constants方法。来自Ruby文档:Module.constants=>arrayReturnsanarrayofthenamesofallconstantsdefinedinthesystem.Thislistincludesthenamesofallmodulesandclasses.pModule.constants.sort[1..5]produces:["ARGV","ArgumentError","Array","Bignum","Bi

ruby - 观看/阅读不断增长的日志文件

我有一个不断增长的日志文件。我如何通过Ruby脚本查看和解析它?脚本将解析写入文件的每个新行,并在新行包含字符串'ERROR'时将内容输出到屏幕 最佳答案 defwatch_for(file,pattern)f=File.open(file,"r")f.seek(0,IO::SEEK_END)whiletruedoselect([f])line=f.getsputs"Foundit!#{line}"ifline=~patternendendwatch_for("g.txt",/ERROR/)感谢ezpz的想法,使用select方法你

ruby - 在 Ruby 模块上调用方法

我有以下Ruby代码:moduleMyModuleclassMyClassdefself.my_methodendendend要调用my_method,我输入MyModule::MyClass.my_method。我想在模块本身上为my_method编写一个包装器:MyModule.my_method这可能吗? 最佳答案 我不确定您想要实现什么,但是:如果您将其设为常规方法并使用module_function对其进行修改,您将能够以您选择的任何方式调用它。#!/usr/bin/ruby1.8moduleMyModuledefmy_m

ruby - 在另一个模块中扩展模块

我正在尝试定义几个模块,以便轻松地将一些实例和类方法添加到其他类中,这就是我正在做的事情:moduleFoomoduleBardefspeakputs"heythere"endendmoduleBazextendFoo::Bardefwelcomeputs"welcome,thisisaninstancemethod"endendendclassTalkerincludeFoo::BazendTalker.new.welcomeTalker.speak这个的输出是:welcome,thisisaninstancemethodundefinedmethod'speak'forTalker

ruby - 为 Ruby 编写模块

如何为ruby​​编写模块。在python中你可以使用#module.pydefhelloworld(name):print"Hello,%s"%name#main.pyimportmodulemodule.helloworld("Jim")回到问题,你如何在ruby​​中/为ruby​​创建一个模块 最佳答案 Ruby中的模块与Python中的模块有不同的用途。通常,您使用模块来定义可以包含在其他类定义中的通用方法。但是Ruby中的模块也可以像在Python中一样以类似的方式使用,只是将某些命名空间中的方法分组。因此,您在Ruby